home *** CD-ROM | disk | FTP | other *** search
/ Super PC 34 / Super PC 34 (Shareware).iso / spc / UTIL / SENTRY41 / README.TXT < prev    next >
Encoding:
Text File  |  1996-02-09  |  101.9 KB  |  2,488 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                                 S e n t r y
  16.                                 ===========
  17.                                     V4.1
  18.  
  19.                              Instruction Manual
  20.  
  21.                              Copyright (C) 1996
  22.  
  23.                              Michael A. Bobbitt
  24.                             NightShade Computing
  25.                           Mike.Bobbitt@AcadiaU.CA
  26.                http//dragon.acadiau.ca/~910318b/Sentry.html
  27.  
  28.  
  29.  
  30.  
  31.                                 S e n t r y
  32.                                 ===========
  33.                              Table of Contents
  34.  
  35.         1.0 Introduction
  36.             1.1  Purpose of Sentry
  37.                  1.1.1 In the Home
  38.                  1.1.2 In a Business Environment
  39.                  1.1.3 In an Educational Environment
  40.                  1.1.4 General
  41.             1.2  Features of Sentry
  42.                  1.2.1 General
  43.                  1.2.2 Expiry Dates
  44.                  1.2.3 Windows
  45.                  1.2.4 File Protection
  46.             1.3  Distribution of Sentry
  47.  
  48.         2.0 Setup
  49.             2.1  Installing Sentry
  50.             2.2  The Initial Login
  51.             2.3  First Priorities
  52.             2.4  Using the Initialization Settings
  53.             2.5  Uninstalling Sentry
  54.  
  55.         3.0 Securing Your Computer
  56.             3.1  BIOS Password
  57.             3.2  Boot Sequence
  58.             3.3  SWITCHES in CONFIG.SYS
  59.             3.4  BootKeys in MSDOS.SYS
  60.             3.5  BREAK in CONFIG.SYS
  61.             3.6  Passwords
  62.             3.7  Placement in AUTOEXEC.BAT
  63.             3.8  Keep a Backup
  64.  
  65.         4.0 Logging In
  66.             4.1  The Login Procedure
  67.             4.2  Changing Passwords
  68.  
  69.         5.0 The SuperUser Menu
  70.             5.1  The User Maintenance Menu
  71.                  5.1.1  Create User
  72.                  5.1.2  Delete User
  73.                  5.1.3  View Users
  74.                  5.1.4  Toggle SuperUser Status
  75.                  5.1.5  Change Account Exipry Date
  76.                  5.1.6  Change Password Expiry Date
  77.                  5.1.7  Change Account Password
  78.                  5.1.8  Assign Max Invalid Logins
  79.                  5.1.9  Return to SuperUser Menu
  80.             5.2  The Log File Maintenance Menu
  81.                  5.2.1  View Log File
  82.                  5.2.2  View Backup Log File
  83.                  5.2.3  Move Log File to Backup
  84.                  5.2.4  Return to SuperUser Menu
  85.             5.3  Edit Initialization Settings
  86.             5.4  Send a Message to a User
  87.             5.5  Protect a File
  88.             5.6  Export Initialization Settings
  89.             5.7  Exit
  90.  
  91.         6.0 Using Sentry With Windows
  92.             6.1  General
  93.             6.2  Installation Procedure
  94.             6.3  Windows 95
  95.  
  96.         7.0 Securing Other Programs
  97.             7.1  General
  98.             7.2  Setup
  99.             7.3  Account Information
  100.             7.4  Using Templates
  101.             7.5  Running a Protected File
  102.  
  103.         8.0 Creating a new Instance of Sentry
  104.  
  105.         9.0 Registration
  106.             9.1 General
  107.             9.2 Benefits of Registration
  108.  
  109.         10.0 The Initialization Settings
  110.              10.1  Location of the Log File
  111.              10.2  Location of the Backup Log File
  112.              10.3  Location of the Message File
  113.              10.4  Minimum Password Length
  114.              10.5  Maximum Password Length
  115.              10.6  Maximum Invalid Tries
  116.              10.7  Wait Time After an Invalid Login
  117.              10.8  Max Log File Size
  118.              10.9  Key to Change Password
  119.              10.10 Password Echo Character
  120.              10.11 Days Until Passwords Expire
  121.              10.12 Days Until Accounts Expire
  122.              10.13 Screen Saver Activation Time
  123.              10.14 Screen Saver Message
  124.              10.15 Login Prompt
  125.              10.16 Password Prompt
  126.              10.17 Wrong Password Message
  127.              10.18 Wrong Login Message
  128.              10.19 Bad Password Length Message
  129.              10.20 Bad Login Length Message
  130.              10.21 Wrong Password Log Message
  131.              10.22 Wrong Login Log Message
  132.              10.23 Bad Password Length Log Message
  133.              10.24 Bad Login Length Log Message
  134.              10.25 Environment Variable
  135.              10.26 Enable Sentry with Windows
  136.              10.27 Show Title
  137.              10.28 Date Format
  138.              10.29 Case Sensitivity
  139.              10.30 Windowed Mode
  140.              10.31 Enable Colour
  141.              10.32 Text Colour
  142.              10.33 Text Background
  143.              10.34 Highlighted Text Colour
  144.              10.35 Highlighted Text Background
  145.              10.36 Maximum Invalid Logins
  146.  
  147.         11.0 Technical Notes
  148.              11.1  Encoding Algorithm
  149.              11.2  SuperUser Access
  150.              11.3  Files
  151.              11.4  File_id.diz
  152.              11.5  Time / Date
  153.              11.6  Environment Variables
  154.              11.7  Virus Scanners
  155.              11.8  General
  156.  
  157.         12.0 Potential Threats To Security
  158.              12.1  Account Information
  159.              12.2  Hardware Loopholes
  160.  
  161.         13.0 Troubleshooting
  162.              13.1  Error messages
  163.                    13.1.1  Environment overflow - not modified.
  164.                    13.1.2  Cannot locate environment!
  165.                    13.1.3  Error Reading Data Segment! [Open]
  166.                    13.1.4  Error Reading Data Segment! [Scan]
  167.                    13.1.5  Error in Initialization Settings!
  168.                    13.1.6  Error in creating log file!
  169.                    13.1.7  Error in Account Information.
  170.                    13.1.8  Error opening log file!
  171.                    13.1.9  Error opening backup log file!
  172.                    13.1.10 Error opening temp file!
  173.                    13.1.11 Internal Screen Error. [Reading]
  174.                    13.1.12 Internal Screen Error. [Writing]
  175.                    13.1.13 Out of memory!
  176.                    13.1.14 Registration Error - Program Aborted!
  177.                    13.1.15 This account has expired.
  178.                    13.1.16 Cannot allocate memory for environment block
  179.                    13.1.17 Error Opening Message File.
  180.                    13.1.18 Error Opening System Files!
  181.                    13.1.19 Error opening protected file!
  182.                    13.1.20 Error opening Sentry.ins!
  183.              13.2  Other problems
  184.  
  185.         14.0 Standard Disclaimer
  186.  
  187.         15.0 Contact Information
  188.  
  189.         16.0 Credits
  190.  
  191.                            ========================
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.                                 S e n t r y
  199.                                 ===========
  200.                      Security for the Home and Business
  201.  
  202.  
  203.  
  204.  
  205.  
  206.         1.0 Introduction
  207.         ================
  208.  
  209.         Currently, almost all fields of computer security are growing
  210.         and advancing, with a few notable exceptions. Networks, servers
  211.         and public access systems are all tightening their access to
  212.         avoid potential problems. But what of the non-networked PC? Is
  213.         the information contained on these any less valuable? Often
  214.         times not, yet adequate security programs do not exist for PC's.
  215.         In my search for security, I discovered that PC's were virtually
  216.         ignored, and those programs that did exist were weak and faulty.
  217.         Faced with this situation, I decided to write my own security
  218.         program from scratch, incorporating the tightest security
  219.         measures possible, while allowing flexible, easy use.
  220.  
  221.  
  222.         1.1 Purpose of Sentry
  223.  
  224.         Sentry is meant for one basic purpose only: to keep unwanted
  225.         people out of "private" information. It is flexible enough that
  226.         this single purpose can be used in many different ways, for many
  227.         different reasons. Here are just a few.
  228.  
  229.         1.1.1 In the Home
  230.  
  231.         Most people have something on their home PC that they consider
  232.         to be "sensitive". Maybe it's a private letter, maybe it's
  233.         copies of e-mail, or maybe it's financial information. Or quite
  234.         possibly, you just want to keep track of who is using your
  235.         system. Sentry has the solution for all of these problems, by
  236.         restricting access and logging all attempts to use the system.
  237.  
  238.         Alternatively, sometimes you just want to keep people out,
  239.         period. It could be your nosy room mate, your little brother, or
  240.         your boss at work. In any case, Sentry will keep them out, while
  241.         letting a select group of people in.
  242.  
  243.         1.1.2 In a Business Environment
  244.  
  245.         Businesses will find Sentry valuable to guard against
  246.         unauthorized entry into PC's. With Sentry, you can leave your
  247.         terminals unattended while knowing that nobody can access the
  248.         information held on them, unless you want them to. Many
  249.         businesses have cleaners or other independent contractors come
  250.         in during silent hours. A lot of businesses have PC's in open
  251.         areas where a "passer-by" could use them. Most terminals are
  252.         left unattended for a portion of the day (lunch, during errands,
  253.         during meetings, etc.). There's no guarantee that an unauthorized
  254.         person won't attempt to use your PC's when you're not around.
  255.  
  256.         For businesses that work in groups, Sentry is useful for keeping
  257.         track of who used the PC's and when. Supervisors could have
  258.         SuperUser access on all PC's in their group, allowing them to
  259.         manage and control access as required. Also, the log that Sentry
  260.         keeps could be a valuable tool in determining who was doing
  261.         what, and when.
  262.  
  263.         1.1.3 In an Educational Environment
  264.  
  265.         Schools and educational institutes will find Sentry useful for
  266.         limiting access to certain terminals. If, for example, only a
  267.         select group of people (staff, administrators, or a certain
  268.         class) should have access to specific PC's, simply give each
  269.         person an account. Anyone without an account cannot log in.
  270.         Sentry will also help track usage, attempted break-ins, and any
  271.         suspicious activity.
  272.  
  273.         Often school terminals are left unattended, with nothing to stop
  274.         a student from "poking around." Sentry can act as protection
  275.         from the prying eyes of the student body.
  276.  
  277.         1.1.4 General
  278.  
  279.         You may not need to use Sentry on your system. You might never
  280.         have a security problem to worry about. But the truth is that
  281.         Security isn't something to take a chance on. It is a serious
  282.         problem in today's computing society, and many legitimate users
  283.         find themselves helpless or confused about the real issues. It
  284.         is a shame that the immoral few have ruined it for the rest, but
  285.         we cannot let them get in the way of our daily business. With
  286.         the proper tools and knowledge, we can fight back by closing up
  287.         the common loopholes that attackers use.
  288.  
  289.  
  290.         1.2 Features of Sentry
  291.  
  292.         1.2.1 General
  293.  
  294.         Sentry will allow you to set up accounts on your computer, one
  295.         account for each person you want to have access. If someone
  296.         doesn't have an account, they don't get in. It's that simple.
  297.         Each person has their own account, with their own password,
  298.         making it easy to track who logs in and when. Since Sentry
  299.         doesn't use a "master access" password, you can wipe a single
  300.         users account without affecting any other users.
  301.  
  302.         Sentry records each login attempt in a log file which can be
  303.         viewed by a SuperUser at any time.
  304.  
  305.         1.2.2 Expiry Dates
  306.  
  307.         You can set accounts to expire on a certain date, effectively
  308.         barring access to the specified user after that. For example, if
  309.         you know that Joe will be leaving on April 14th, you can set his
  310.         account to expire on April 15th. That means you don't have to
  311.         remember to delete his account on the 15th... It will expire on
  312.         it's own, and you can delete it whenever you remember.
  313.  
  314.         You can also set expiry dates for passwords, meaning that a user
  315.         will have to enter a new password once his old one has expired.
  316.         In addition, you can set the period of time that new passwords
  317.         are good for.
  318.  
  319.         1.2.3 Windows
  320.  
  321.         Sentry can be used in conjunction with Windows to make it a
  322.         more secure environment. You can protect your MS-DOS icon so
  323.         that only users with an account can drop to DOS. In addition,
  324.         you can tailor the way Windows operates to allow more protection
  325.         from accidental deletion or modification of important items.
  326.  
  327.         1.2.4 File Protection
  328.  
  329.         In addition to securing your PC, Sentry can secure individual
  330.         files. If you have a program that you need to keep on your hard
  331.         drive, but you want to restrict who uses it, you can simply
  332.         protect that file with Sentry. A good example of this is the
  333.         FORMAT program. This is a useful command, however you probably
  334.         don't want it available to the masses. The solution? Protect it
  335.         with Sentry. Once protected, only those people you designate
  336.         will be able to execute the program.
  337.  
  338.  
  339.         1.3 Distribution of Sentry
  340.  
  341.         Sentry is a copywritten piece of work, however distribution of
  342.         the ShareWare version is allowed and encouraged. The only
  343.         stipulation is that it must be unmodified, and must contain all
  344.         of the original files (and no others). Essentially, the
  345.         SentryXX.zip file you initially received is the only format that
  346.         Sentry is distributable in.
  347.  
  348.         DO NOT distribute any registered versions whatsoever. (By
  349.         distributing a registered version, you are giving out copies of
  350.         a specific encoding scheme, which can be used against the
  351.         registered user - and only the registered user!)
  352.  
  353.  
  354.         2.0 Setup
  355.         =========
  356.  
  357.         Since you are reading this, I can safely assume you have
  358.         unzipped Sentry. Along with that, I will also assume that you
  359.         have created a directory for Sentry, and that all Sentry files
  360.         are currently in it. (If this is not true, do it now). You may
  361.         want to read the section entitled "Creating a new Instance of
  362.         Sentry" below.
  363.  
  364.  
  365.         2.1 Installing Sentry
  366.  
  367.         The very first thing you should do is make sure you keep a copy
  368.         of all the Sentry files somewhere safe. Copying them to a floppy
  369.         disk and storing it is a good idea.
  370.  
  371.         From here, installation is relatively simple. Just run the
  372.         program called INSTALL.EXE. You will now be asked for the
  373.         directory you wish to install to. If it the current directory,
  374.         you can simply enter a period (.) at this prompt. If you enter
  375.         another directory, the files will be copied to that new
  376.         directory, but not deleted from the current one. (You must do
  377.         that yourself).
  378.  
  379.         If you have previously exported your initialization settings,
  380.         they will be detected now, and you will be asked if you wish to
  381.         use them.
  382.  
  383.         If there are no exported settings, the install program will
  384.         automatically search to see if your copy of Sentry already has
  385.         initialization settings. If it does, you will be asked if you
  386.         wish to over-write them. Enter 'y' if you wish to overwrite
  387.         them. If you do not already have initialization settings, the
  388.         install program will automatically use the defaults.
  389.  
  390.         Next you will be asked if you wish to update your system files.
  391.         If you answer 'y' then your AUTOEXEC.BAT, CONFIG.SYS and
  392.         MSDOS.SYS (for Windows 95 only) will be backed up and modified.
  393.         This action will cause Sentry to run automatically the next time
  394.         your computer reboots.
  395.  
  396.         Finally, you will be asked if you wish to use Sentry with
  397.         Windows. If you answer 'y' then you will be asked for the path
  398.         to your windows directory. You will also be asked a series of
  399.         questions about general Windows security. The options you select
  400.         will automatically be set within windows. If you wish to re-set
  401.         any options, simply run the install program again.
  402.  
  403.         Please note that the install program deletes itself after
  404.         running. This is so it cannot be run by a regular user to gain
  405.         access. Make sure you keep a backup of the install program in
  406.         case you need it.
  407.  
  408.  
  409.         2.2 The Initial Login
  410.  
  411.         Now the next thing you must do is to change the password and
  412.         login provided with the initial copy of Sentry. To do this, you
  413.         must run the Sentry.exe program. If it displays an error
  414.         message, check the troubleshooting section at the end of this
  415.         file.
  416.  
  417.         When it asks for a login, use "Sentry", with the password
  418.         "Sentry". You can turn case sensitivity off via the
  419.         initialization settings, but only for logins. The password must
  420.         be entered exactly as shown (sentry or SENTRY will not work).
  421.         The Sentry account has SuperUser access, meaning you can create
  422.         and delete accounts while logged in as Sentry. To log in as a
  423.         SuperUser, enter Sentry for a login, and instead of pressing
  424.         enter, hold down the CONTROL key and press enter. This tells the
  425.         Sentry program that you want to log in as a SuperUser. Then
  426.         enter your password normally, and instead of dropping to DOS,
  427.         you will go to the SuperUser menu. (See the section below on
  428.         "The SuperUser Menu" for more information).
  429.  
  430.         From here, you should create a new user (you) and grant yourself
  431.         SuperUser access. You can do this during creation by holding the
  432.         CTRL key while pressing enter after typing your login name. You
  433.         can also do this by using the "Create User" option normally and
  434.         then using the "Toggle SuperUser Access" menu option to give
  435.         yourself SuperUser privileges.
  436.  
  437.  
  438.         2.3 First Priorities
  439.  
  440.         Once you have your account set up, you should delete the Sentry
  441.         account, so nobody else can use it. This is very important as a
  442.         potential intruder will probably try to enter through the
  443.         default Sentry account first. (If you delete it, that closes the
  444.         loophole).
  445.  
  446.         Sentry will not let you delete the last SuperUser, so you must
  447.         create a new user with SuperUser access before deleting the
  448.         Sentry account.
  449.  
  450.         From here, you can create the other users of your system, and
  451.         define their starting passwords, expiry dates and access rights.
  452.         See the section below on "The SuperUser Menu" for more
  453.         information.
  454.  
  455.  
  456.         2.4 Using the Initialization Settings
  457.  
  458.         Sentry can be configured to your needs by way of the
  459.         initialization settings. These settings contain information that
  460.         you may wish to change, allowing Sentry to adapt to many
  461.         different situations.
  462.  
  463.         You can edit the initialization settings from the SuperUser
  464.         menu. You can do this by selecting the "Edit Initialization
  465.         Settings" option (see section 5.10 and section 10 for details).
  466.         Each setting includes helpful hints and information to simplify
  467.         customization. Any changes you make will not take effect until
  468.         the next time you use Sentry.
  469.  
  470.  
  471.         2.5 Uninstalling Sentry
  472.  
  473.         Sentry is simple to uninstall. Simply re-run the INSTALL.EXE
  474.         program (you may have to get it from backup as it deletes itself
  475.         after installing). At the "Install Path" prompt, simply enter an
  476.         asterisk (*) to uninstall.
  477.  
  478.         From here you will be asked if you wish to remove Sentry from
  479.         your hard drive. Responding with a 'y' will delete the files and
  480.         remove the directory that Sentry is in. Next you will be
  481.         prompted for your windows directory. If you did not install
  482.         Sentry with Windows, you can simply enter an asterisk (*) to
  483.         skip this.
  484.  
  485.         When the program finishes, Sentry will no longer be on your
  486.         system. If you change your mind, you can re-install it at any
  487.         time.
  488.  
  489.  
  490.         3.0 Securing Your Computer
  491.         ==========================
  492.  
  493.         Sentry is essentially useless unless you take the appropriate
  494.         additional security measures for your machine. Below I have
  495.         outlined some of the things you can do to increase the security
  496.         of your system.
  497.  
  498.  
  499.         3.1 BIOS Password
  500.  
  501.         Protect your BIOS! It has a built in password, so set it!
  502.         Without the password, any user can get into your BIOS and change
  503.         your critical system settings. I have seen several different
  504.         types of BIOS setups, but generally, you use the CHANGE PASSWORD
  505.         command (Sometimes also listed as SUPERVISOR PASSWORD) from the
  506.         main menu and set the SECURITY OPTION to "Setup" (as opposed to
  507.         "System") in the BIOS FEATURES SETUP screen. Depending on the
  508.         layout of your BIOS, you may have a CHANGE SETUP PASSWORD option
  509.         right on the main menu.
  510.  
  511.  
  512.         3.2 Boot Sequence
  513.  
  514.         Change your boot sequence. Again, in your BIOS, under the BIOS
  515.         FEATURES SETUP screen, set your BOOT SEQUENCE to boot from your
  516.         hard drive first. (This usually means set it to C,A as opposed
  517.         to A,C). This will ensure that no-one can bypass Sentry by means
  518.         of a boot disk.
  519.  
  520.  
  521.         3.3 SWITCHES in CONFIG.SYS
  522.  
  523.         This step is not required for Windows 95 users.
  524.  
  525.         Add "switches /n/f" as the first line of your CONFIG.SYS file.
  526.         The /n will disallow pressing F8 or F5. F8 allows users to step
  527.         through each command of the CONFIG.SYS and AUTOEXEC.BAT files,
  528.         and F5 gives them the option of skipping them all together. This
  529.         means that users cannot bypass Sentry by this method. The /f
  530.         switch is optional, it simply speeds up your boot-up time (by
  531.         about 2 seconds).
  532.  
  533.         This is automatically done if you update your system files
  534.         through the install program.
  535.  
  536.  
  537.         3.4 BootKeys in MSDOS.SYS
  538.  
  539.         This step is for Windows 95 users ONLY.
  540.  
  541.         Add the line "BootKeys=0" to your MSDOS.SYS file. This will
  542.         disable the use of F8, F4 or SHIFT to bypass the CONFIG.SYS and
  543.         AUTOEXEC.BAT files. Adding this line is therefore a must,
  544.         otherwise people will be able to defeat Sentry with the press of
  545.         a key. To edit your MSDOS.SYS file, you may need to issue the
  546.         command "attrib -h -s c:\msdos.sys" which will make it readable.
  547.         When you are finished, you should issue the command "attrib +h
  548.         +s c:\msdos.sys" which will restore it to it's previous
  549.         condition.
  550.  
  551.         This is automatically done if you update your system files
  552.         through the install program.
  553.  
  554.  
  555.         3.5 BREAK in CONFIG.SYS
  556.  
  557.         You must also check your CONFIG.SYS file for any BREAK commands.
  558.         If the command BREAK=ON is present, delete it! This command may
  559.         allow users to break out of the CONFIG.SYS file, which is wrong!
  560.         If BREAK=OFF exists, that is ok (since that is the DOS default,
  561.         and it is secure), however you must get rid of any BREAK=ON
  562.         commands.
  563.  
  564.         This is automatically done if you update your system files
  565.         through the install program.
  566.  
  567.  
  568.         3.6 Passwords
  569.  
  570.         Pick a good password. Short passwords are a bad idea, as well as
  571.         birthdays, girlfriends names, etc. Anything that is easy to
  572.         guess should be avoided. Good passwords are not words at all,
  573.         but made up from a "mnemonic" sentence. For example, the
  574.         sentence "I'll wait for you" turns into "Illw84u" (trust me).
  575.         Mixing lower case letters, upper case letters, and numbers
  576.         increases the security of a password, and passwords of this type
  577.         are near impossible to guess or crack. Do not write your
  578.         password down, especially near your computer. Try to memorize it
  579.         if possible. Change your password, but not too often. People who
  580.         change their passwords too often (less than 6 months or so) tend
  581.         to write them down, which is a bigger risk. Don't enter your
  582.         password with someone looking over your shoulder. If someone is
  583.         in the room, block their view, or wait until they leave.
  584.  
  585.  
  586.         3.7 Placement in AUTOEXEC.BAT
  587.  
  588.         When you are installing Sentry, make sure it is the FIRST file
  589.         in your AUTOEXEC.BAT! Otherwise, the user may be able to exit
  590.         when another program is running and avoid Sentry all together!
  591.  
  592.         This is automatically done if you update your system files
  593.         through the install program.
  594.  
  595.  
  596.         3.8 Keep a Backup
  597.  
  598.         Keep a backup copy of all your Sentry files! If something
  599.         happens to these files, you may be locked out your computer if
  600.         you don't have a backup. It is best to copy your entire Sentry
  601.         directory to a floppy disk about once a week, so you won't be
  602.         caught short.
  603.  
  604.  
  605.         4.0 Logging In
  606.         ==============
  607.  
  608.         4.1 The Login Procedure
  609.  
  610.         When you first run Sentry, you should see the standard startup
  611.         screen. Your registration information is contained here. (The
  612.         shareware release simply says it is registered to Shareware).
  613.         You should also see a prompt asking you to enter your login (or
  614.         user name). If instead you see an error message, check at the
  615.         end of this file for help.
  616.  
  617.         While entering your user name, if you have SuperUser access, you
  618.         can log in as such. You can do this by holding down the CTRL key
  619.         while pressing enter (CTRL-ENTER). If you do not have SuperUser
  620.         access, or do not wish to log in as such, simply press enter. In
  621.         either case, this will send you to the password prompt.
  622.  
  623.         Once you have reached the password prompt, you simply enter your
  624.         password, and hit enter when you are finished. Your password is
  625.         not echoed to the screen.
  626.  
  627.         The minimum and maximum length of both the login and password
  628.         are set by initialization settings. If you wish to change these,
  629.         you must do so from the SuperUser menu.
  630.  
  631.         After correctly entering your password, Sentry will search for
  632.         any messages addressed to you. If you have a message waiting, it
  633.         will be displayed. Pressing 'd' will delete that message, any
  634.         other key will keep it for the next time you log in. Each
  635.         message is displayed individually.
  636.  
  637.         Next, the date and time of your last login will be displayed. If
  638.         there have been any invalid login attempts made against your
  639.         account since the last valid login, you will be told so, and how
  640.         many. If the number of invalid login attempts against your
  641.         account has exceeded the maximum allowed, your account will be
  642.         locked out until the SuperUser resets it.
  643.  
  644.         If your account has expired, it will say so, and subsequently
  645.         lock you out. If your password has expired, it will also say so,
  646.         but will then prompt you to enter a new password. You may not
  647.         re-use your old password, and you must pick a password that
  648.         corresponds to the length limits set out by the initialization
  649.         settings. Once you have entered and verified your new password,
  650.         it is given a new expiry date according to the default (again
  651.         determined by the initialization settings).
  652.  
  653.         If you have logged in as a SuperUser, and have SuperUser access,
  654.         you will now be in the SuperUser menu (see the section below).
  655.         If not, you will simply be dropped to DOS, and the login
  656.         procedure is complete.
  657.  
  658.  
  659.         4.2 Changing Passwords
  660.  
  661.         If you wish to change your password at any time, you can do so
  662.         by entering the pass key. The pass key is defined in the
  663.         initialization settings, and is displayed when Sentry starts up.
  664.         The default pass key is "passwd". To change your password,
  665.         simply enter your user name as usual, and when prompted for your
  666.         password, enter the pass key. You will then be prompted for your
  667.         old  password (to make sure it is really you), and then you will
  668.         be asked for your new password, which will be verified and saved
  669.         to disk. Your new password will expire in the number of days
  670.         designated by the initialization settings.
  671.  
  672.         Changing your password has no effect on SuperUser access.
  673.  
  674.  
  675.         5.0 The SuperUser Menu
  676.         ======================
  677.  
  678.         The SuperUser menu is where most of the important actions take
  679.         place. From here it is easy to perform system administrator
  680.         tasks, and maintain user accounts. The following options are
  681.         shown on the SuperUser menu:
  682.  
  683.             1.  The User Maintenance Menu
  684.             2.  View Log File
  685.             3.  Edit Initialization Settings
  686.             4.  Send a Message to a User
  687.             5.  Protect a File
  688.             6.  Export Initialization Settings
  689.             7.  Exit
  690.  
  691.         Each option is described below.
  692.  
  693.  
  694.         5.1  The User Maintenance Menu
  695.  
  696.         The User Maintenance Menu contains all actions that affect
  697.         users. The following options can be accessed through the User
  698.         Maintenance Menu:
  699.  
  700.             1.  Create User
  701.             2.  Delete User
  702.             3.  View Users
  703.             4.  Toggle SuperUser Status
  704.             5.  Change Account Exipry Date
  705.             6.  Change Password Expiry Date
  706.             7.  Change Account Password
  707.             8.  Assign Max Invalid Logins
  708.             9.  Return to SuperUser Menu
  709.  
  710.         Each option is described below.
  711.  
  712.         5.1.1  Create User
  713.  
  714.         This option allows you to create users on your system. First of
  715.         all, you must enter the username (or login) you wish to assign
  716.         to that user. If you wish to create a user with SuperUser
  717.         status, type in the username and hold down the CONTROL key when
  718.         pressing enter. Otherwise, just press enter. Once that is
  719.         complete, Sentry asks for the password. The password is not
  720.         echoed to the screen. The user should choose and enter their own
  721.         password. SuperUsers need not know what the passwords are since
  722.         they can still manage the accounts without knowing them. The
  723.         password is entered twice to ensure no typos were made, and then
  724.         saved in encoded form. The ESCAPE key will abort this operation
  725.         at any time.
  726.  
  727.         Note: There is currently a maximum of 100 users allowed. This
  728.         limit can be bypassed if required (contact me for a larger
  729.         capacity version).
  730.  
  731.  
  732.         5.1.2  Delete User
  733.  
  734.         The delete option is very simple. It brings up a list of all
  735.         users, and you simply use the cursor keys to highlight the user
  736.         you wish to delete. SuperUsers are denoted by a * to the right
  737.         of their username. Press enter to select the appropriate user.
  738.         If the selected user is a SuperUser, Sentry will give a warning.
  739.         SuperUser or not, Sentry will then ask if you are sure you want
  740.         to delete them. Any input other than a 'y' will not perform the
  741.         delete. The ESCAPE key will abort this option at any time.
  742.  
  743.  
  744.         5.1.3  View Users
  745.  
  746.         This option allows you to view all users who currently have
  747.         accounts on your system. SuperUsers are again denoted by a * to
  748.         the right of their login name. The last login date/time, account
  749.         expiry date and password expiry date are also shown to the right
  750.         of the user's login name. In addition, the number of invalid
  751.         logins since the users last valid login are shown with the
  752.         number of invalid logins allowed before an account is locked up.
  753.         An "X" in the "Max Inv Log" (Maximum Number of Invalid Logins
  754.         Allowed) column means there is no limit. You can use the PAGE UP
  755.         and PAGE DOWN keys to scroll forward and back if there are
  756.         multiple pages of users. Arrows (- and ) will be present if
  757.         there are additional pages above/below. The ESCAPE key will exit
  758.         back to the main menu.
  759.  
  760.  
  761.         5.1.4  Toggle SuperUser Status
  762.  
  763.         When this option is selected, it first brings up a list of all
  764.         users on the system. Again, SuperUsers are denoted by a *. Once
  765.         you have selected a user, Sentry will ask you if you want to
  766.         grant/revoke SuperUser access to/from the appropriate user. Any
  767.         input other than a 'y' will not change that users status. Now
  768.         the user must enter a password. (Since the SuperUser status is
  769.         encoded in the password, and the password can never be decoded,
  770.         I can't change SuperUser access without resetting the password).
  771.         The user can re-enter their old password, or enter a new one
  772.         (the old one will be over-written). In a worst case scenario,
  773.         the SuperUser can re-assign a new password to the user if he is
  774.         unavailable to enter a new password himself. (A hostile user can
  775.         have SuperUser access revoked without having to enter a new
  776.         password; you can do it for him).
  777.  
  778.  
  779.         5.1.5  Change Account Exipry Date
  780.  
  781.         This option lets you define when an account will expire on your
  782.         system. Expired accounts no longer have access. This option is
  783.         useful if a user will be leaving. Then you don't have to
  784.         remember to delete their account on the day they leave. You can
  785.         set it to expire, and delete it when you remember.
  786.  
  787.         This option also works in conjunction with the "Assign Max
  788.         Invalid Logins" option. Once an account reaches it's maximum
  789.         number of sequential invalid logins, it expires. The only way to
  790.         re-activate the account is to change the expiry date with this
  791.         option.
  792.  
  793.         Once you select this option, some information about the account
  794.         will be displayed. If it is a SuperUser account, Sentry will
  795.         tell you so. It will then display the account's current expiry
  796.         date. You will be asked if you are sure you want to change that
  797.         user's expiry date. Any input other than a 'y' will abort the
  798.         process, otherwise you will be prompted for the year the account
  799.         will expire. The year must be entered as 4 digits (IE: 1997). If
  800.         you enter 'N' at the year prompt, no expiry date is assigned to
  801.         that account (it is valid forever). If you enter a valid year,
  802.         you will then be prompted for the expiry month, which is entered
  803.         as 2 digits (IE: 06 for June) followed by the expiry day, which
  804.         is also entered as 2 digits. Accounts expire at one second past
  805.         midnight on the date of expiry.
  806.  
  807.  
  808.         5.1.6  Change Password Expiry Date
  809.  
  810.         This option lets you define when a users password will expire.
  811.         Once the password has expired, the user must enter a new one.
  812.         This forces the user to change their password. Once a password
  813.         has expired, the next time the user logs in he will be forced to
  814.         enter a new password. The new password is valid for the number
  815.         of days set by the initialization settings. Once a password has
  816.         expired, the user cannot re-enter it. He must select a new
  817.         password. (NOTE: Sentry does not keep historical records on
  818.         passwords, so a user may alternate back and forth between 2
  819.         passwords. This is not a secure practice and should be avoided).
  820.  
  821.         Once you select this option, some information about the account
  822.         will be displayed. If it is a SuperUser account, Sentry will
  823.         tell you so. It will then display the current expiry date for
  824.         the password. You will be asked if you are sure you want to
  825.         change that user's expiry date. Any input other than a 'y' will
  826.         abort the process, otherwise you will be prompted for the year
  827.         the password will expire. The year must be entered as 4 digits
  828.         (IE: 1997). If you enter 'N' at the year prompt, no expiry date
  829.         is assigned to that password (it is valid forever). If you enter
  830.         a valid year, you will then be prompted for the expiry month,
  831.         which is entered as 2 digits (IE: 06 for June) followed by the
  832.         expiry day, which is also entered as 2 digits. Passwords expire
  833.         at one second past midnight on the date of expiry.
  834.  
  835.  
  836.         5.1.7  Change Account Password
  837.  
  838.         This option allows the SuperUser to change an account's
  839.         password, in case the user forgot it, or some other strange
  840.         disaster has occurred. When assigning a new password to an
  841.         account, you should set the expiry date to be immediately, so the
  842.         user is forced to choose a new one. If the previous password had
  843.         no expiry date, none is assigned to the new password. Otherwise
  844.         the password expires in the number of days assigned in the
  845.         initialization settings. You can abort at any time by pressing
  846.         the ESCAPE key.
  847.  
  848.  
  849.         5.1.8  Assign Max Invalid Logins
  850.  
  851.         This allows you to set the maximum number of invalid logins
  852.         allowed before an account is disabled. The default number is
  853.         defined in the initialization settings, and is assigned to all
  854.         accounts when they are first used.
  855.  
  856.         To assign a new maximum, simply select the "Assign Max Invalid
  857.         Logins" option from the SuperUser menu. From here you will be
  858.         shown the complete user list, and asked to select the user you
  859.         wish to change. Pressing the ESCAPE key will abort the operation
  860.         here.
  861.  
  862.         Once you have selected the user, you will be informed if that
  863.         user is a SuperUser. NOTE: You should not assign a maximum
  864.         number of invalid logins to your last SuperUser account. If you
  865.         do, and someone attempts to break in to that account, you could
  866.         be locked out of the SuperUser menu!
  867.  
  868.         Next you will be told what the user's current max invalid login
  869.         setting is, and asked if you want to change it. Any input other
  870.         than a 'Y' will abort the operation. Now you will be asked to
  871.         enter the number of invalid login attempts before an account is
  872.         disabled. Entering 'N' or a 0 will mean that there can be
  873.         unlimited invalid login attempts made.
  874.  
  875.         Please note that a value of less than 10 may cause you more
  876.         trouble than good. You may be spending a lot of time re-setting
  877.         accounts if you pick too low a value, so consider this
  878.         carefully. Also note that when an account is locked up, it is
  879.         actually set to expire immediately. As a result, if you wish to
  880.         re-activate an account, you must change the account's expiry
  881.         date (see above). This is also handy for determining when the
  882.         account was actually de-activated. The expiry date for that
  883.         account it set the day it was locked out.
  884.  
  885.         Every time a successful login is made to an account, the invalid
  886.         login counter is reset. This means that an account will not be
  887.         locked out if it has a valid login before the maximum is
  888.         reached. (For example, say an account has a maximum of 10
  889.         invalid logins. If there are 7 invalid logins before a
  890.         successful login, and then 5 more invalid logins, the account
  891.         will not be locked up. There must be 10 sequential invalid
  892.         logins for the account to be disabled.)
  893.  
  894.         Once you have finished making the change, you can view the user
  895.         list to make sure it is acceptable.
  896.  
  897.  
  898.         5.1.9  Return to SuperUser Menu
  899.  
  900.         This option simply returns you to the SuperUser menu. It is the
  901.         same as hitting the ESC key.
  902.  
  903.  
  904.         5.2  The Log File Maintenance Menu
  905.  
  906.         The Log File Maintenance Menu contains all actions required to
  907.         manage the log file. The following options can be accessed
  908.         through the Log File Maintenance Menu:
  909.  
  910.             1. View Log File
  911.             2. View Backup Log File
  912.             3. Move Log File to Backup
  913.             4. Return to SuperUser Menu
  914.  
  915.         Each option is described below.
  916.  
  917.  
  918.         5.2.1  View Log File
  919.  
  920.         Every time a user logs in, a record is kept on disk. If you want
  921.         to view that online record, select this option. You will be
  922.         asked if you want view to the log file for one or all users.
  923.         Entering 'o' (for one user) will bring you to the userlist,
  924.         where you can select the user you wish to view. Any other input
  925.         will show the log for all users.
  926.  
  927.         The log file will be displayed one screen at a time. You can
  928.         press ESC at any time to skip to the end of the file. Once the
  929.         entire log file has been displayed, Sentry will ask you if you
  930.         want to clear the log file. If you were viewing a single user's
  931.         log, Sentry will ask if you want to clear their file.
  932.  
  933.         Any input other than 'y' will exit, leaving the log file in
  934.         tact. If you answer with a 'y', Sentry will clear out the old
  935.         entries. When viewing the log for all users, that means that all
  936.         entries will be removed. When viewing the log for a single user,
  937.         only that user's entries will be removed.
  938.  
  939.         The log file itself will not consume much disk space, and so it
  940.         should be left in tact for historical reasons. You may find it
  941.         necessary to refer back to the log file to verify certain
  942.         events. If disk space is a constraint, you can use the "Move Log
  943.         File to Backup" option described later.
  944.  
  945.         You should always keep a close eye on the log file as this will
  946.         often tell you when something is wrong on your system. All error
  947.         messages are saved to the log file, so you can see if Sentry has
  948.         run into any problems. Also, it records the current time, and
  949.         the username of the user attempting to log in. This will help
  950.         you to identify any potential attacks on your system. The log
  951.         file is hidden by Sentry, but you should also place it somewhere
  952.         safe so that users cannot tamper with it. You can set the
  953.         location of the log file via the initialization settings.
  954.  
  955.  
  956.         5.2.2  View Backup Log File
  957.  
  958.         This option is the same as "View Log File" except it allows you
  959.         to view the information you have backed up. This is strictly for
  960.         historical purposes, so log file information is not lost.
  961.  
  962.  
  963.         5.2.3  Move Log File to Backup
  964.  
  965.         This moves all of the information in the current log file to the
  966.         backup file. The backup file is not overwritten, the new
  967.         information is appended to it. This makes it easier to manage
  968.         when the log file gets large, but you don't want to clear it.
  969.  
  970.  
  971.         5.2.4  Return to SuperUser Menu
  972.  
  973.         This option simply returns you to the SuperUser menu. It is the
  974.         same as hitting the ESC key.
  975.  
  976.  
  977.         5.3  Edit Initialization Settings
  978.  
  979.         This option allows you to edit the initialization settings.
  980.         After installation, it is critical that you go through each and
  981.         every attribute, and make sure it is set to your liking. Many of
  982.         the initialization settings have serious implications on
  983.         security. Once this option is selected, all of the attributes
  984.         are displayed. Simply select the attribute you wish to modify,
  985.         and you will be given the following information:
  986.  
  987.                 - A one line description of the attribute.
  988.  
  989.                 - A brief description of the attribute and it's uses.
  990.  
  991.                 - Valid settings for the attribute, if applicable.
  992.  
  993.                 - Any security notes, if applicable.
  994.  
  995.                 - The default value for the attribute.
  996.  
  997.                 - The current value for the attribute.
  998.  
  999.         At this time, you will be prompted to enter a new value for the
  1000.         attribute. Pressing ENTER on a blank line, or pressing the ESC
  1001.         key abort any changes the current value.
  1002.  
  1003.         Sentry performs strict checking on the values you enter, and
  1004.         will not save an invalid value.
  1005.  
  1006.         See section 10 for details on individual settings.
  1007.  
  1008.  
  1009.         5.4  Send a Message to a User
  1010.  
  1011.         This option allows the SuperUser to send a one-line message to
  1012.         any user on the system (including themselves). Once this option is
  1013.         selected, you must pick the user you wish to send a message to
  1014.         from the list of all users. Once this is done, you will be
  1015.         prompted for your one-line message. If you wish to send more
  1016.         than one line, simply send two messages to the same user. After
  1017.         you have entered your message, you will be returned to the
  1018.         SuperUser menu. The next time that person logs in, your message
  1019.         will be displayed, including:
  1020.  
  1021.           - Who the message is from
  1022.           - The time and date the message was sent
  1023.           - The message itself
  1024.  
  1025.         The user then has the option to delete the message. If they do
  1026.         not delete the message, they will also see it on their next
  1027.         login.
  1028.  
  1029.         NOTE: Messages are displayed before any login information, so
  1030.         you can send messages to users that are locked out. That way, if
  1031.         you wish to send an explanation, you can.
  1032.  
  1033.  
  1034.         5.5  Protect a File
  1035.  
  1036.         This option allows you to protect executable files (.EXE, .COM
  1037.         and .BAT). When this option is selected, it prompts for the file
  1038.         name. You must enter a path to a file that exists, and the file
  1039.         must be executable. If the file name is correct, Sentry then
  1040.         processes that file, and "protects" it. Protection means that
  1041.         the next time that file is run, Sentry will execute. If the user
  1042.         enters a valid login and password, then the original file
  1043.         executes. If not, then the file is not executed.
  1044.  
  1045.         This is useful for protecting individual files. After all, if a
  1046.         person successfully logs into your computer, they have free
  1047.         access to anything there. This will allow you to tighten up
  1048.         access to individual files.
  1049.  
  1050.         The current method of protection does not work with all files.
  1051.         That is to say, I have tested it on some files that do not run
  1052.         correctly once protected. (It seems to be memory or video
  1053.         conflicts). Currently, a protected file has about 100k less
  1054.         memory available to it than if it was run normally. Also,
  1055.         protecting programs that run within Windows does not work. These
  1056.         issues are "on the list" for research.
  1057.  
  1058.         See section 7 for specific details on protecting files.
  1059.  
  1060.  
  1061.         5.6  Export Initialization Settings
  1062.  
  1063.         Selecting this option will export the Initialization Settings.
  1064.         This will allow you to use the same settings and account
  1065.         structure when you upgrade. The process for this is simple.
  1066.         Select this option, and it will export the settings. Now simply
  1067.         unzip the new SentryXX.zip into your directory (overwriting all
  1068.         files), and run the Install.exe program. Install will
  1069.         automatically sense the exported information, and ask if you
  1070.         want to use it. If you say yes, the settings are automatically
  1071.         updated to the new version, and loaded in.
  1072.  
  1073.         Please note that you should not export the settings unless you
  1074.         plan to import them right away into a new version (it can cause
  1075.         a slight security risk).
  1076.  
  1077.  
  1078.         5.7  Exit
  1079.  
  1080.         This simply returns you to the DOS prompt. It is the same as
  1081.         pressing the ESCAPE key.
  1082.  
  1083.  
  1084.         6.0 Using Sentry With Windows
  1085.         =============================
  1086.  
  1087.         6.1 General
  1088.  
  1089.         Sentry is also adaptable to Windows, allowing you to keep users
  1090.         away from DOS. This may be desirable if you enter Windows
  1091.         immediately upon startup (I.E.: your AUTOEXEC.BAT contains "win"
  1092.         as a command). If you want to limit access to your system as a
  1093.         whole, you could install Sentry in the usual way. This would
  1094.         keep out unwanted users all together. If you want to also limit
  1095.         access to the DOS prompt from Windows, you can do that too. All
  1096.         you must do is create a new instance of Sentry (see below), and
  1097.         then simply set up your windows to run Sentry when you drop to
  1098.         DOS. The example setup below assumes you have installed an
  1099.         instance of Sentry in c:\Sentry\Inst1, but you can substitute
  1100.         your actual directory names in where applicable.
  1101.  
  1102.  
  1103.         6.2 Installation Procedure
  1104.  
  1105.         Installing Sentry in the Windows environment is simple. Included
  1106.         in the Sentry zip file are 2 files:
  1107.  
  1108.         Sentry.grp
  1109.         Sentry.pif
  1110.  
  1111.         Both of these will be copied to your windows directory during
  1112.         the install. Enter Windows and from the Program Manager, select
  1113.         [F]ile, then [N]ew. Next select Program Group. When prompted,
  1114.         enter "Sentry" for both description and file name. Now you
  1115.         should see a new program group called Sentry. The Sentry program
  1116.         group should contain a single icon, labeled MS-DOS. This icon
  1117.         actually points to sentry.pif, which contains specific
  1118.         information about running Sentry.
  1119.  
  1120.         You can edit the new icon (highlight it and press ALT-ENTER) and
  1121.         change the working directory to point to your Sentry files.
  1122.  
  1123.         IE: c:\Sentry, or c:\Sentry\Inst1, etc.
  1124.  
  1125.         From here, run the Pif Editor program (the icon is a little
  1126.         tag), and open Sentry.pif. Now change the "Program Filename" to
  1127.         point to your Sentry.exe file.
  1128.  
  1129.         IE: c:\Sentry\Sentry.exe, or c:\Sentry\Inst1\Sentry.exe, etc.
  1130.  
  1131.         In Addition, change the "Working Directory" to be the same as
  1132.         the working directory for the icon (see above). Once you save
  1133.         the .pif file, you are all set.
  1134.  
  1135.         At this point you should test out the new Sentry icon to make
  1136.         sure it works ok. When you double click on the new icon, it
  1137.         should take you directly to Sentry. Once you have entered a
  1138.         correct username and password, it will then drop you to a
  1139.         regular DOS shell. You can type "EXIT" to return to Windows at
  1140.         any time.
  1141.  
  1142.         Once you are sure it works, remove your old MS-DOS icon, so that
  1143.         users cannot use it to drop straight to DOS. You can drag your
  1144.         new icon into the same location as your old MS-DOS icon, so
  1145.         everything will look the same.
  1146.  
  1147.         Now there is one last step. If a user were to exit Windows, they
  1148.         would be at the DOS level, which is not what we want. Since your
  1149.         AUTOEXEC.BAT file is running windows on startup, you can block
  1150.         people from exiting by forcing them to go through Sentry. You
  1151.         can do this by adding a call to Sentry after the win command in
  1152.         your AUTOEXEC.BAT.
  1153.  
  1154.         For example, the last lines of your AUTOEXEC.BAT might look like
  1155.         this:
  1156.  
  1157.         ----------------- CUT ----------------
  1158.         win
  1159.         \Sentry\Inst1\Sentry
  1160.         ----------------- CUT ----------------
  1161.  
  1162.         Alternatively, you can add the security measures offered by the
  1163.         install program.
  1164.  
  1165.         If it seems like a complicated process, just try the steps one
  1166.         at a time, and make sure everything works ok. The end result is
  1167.         that when you click on the MS-DOS icon, it will run Sentry
  1168.         before dropping you to the DOS shell. That means that you can
  1169.         limit access to the operating system, without pulling any fancy
  1170.         tricks in Windows. Since you have made a new instance of Sentry,
  1171.         you could have one instance run when you boot up (giving access
  1172.         to windows), and have another instance run when you click on the
  1173.         DOS icon (giving access to the operating system). That way, a
  1174.         user that has access to your PC may not be able to drop to DOS.
  1175.  
  1176.         Be warned that Sentry will still lock up your terminal if a user
  1177.         fails to log in. If this happens in Windows, you may be able to
  1178.         recover back to Windows by pressing CTRL-ALT-DELETE and closing
  1179.         the DOS prompt. This will still not allow access to DOS, but you
  1180.         will not lose anything you were working on.
  1181.  
  1182.  
  1183.         6.3 Windows 95
  1184.  
  1185.         Sentry is easily adaptable to use in a Windows 95 environment.
  1186.         In most respects, the setup is the same as in a DOS/Windows
  1187.         environment.
  1188.  
  1189.         The primary difference with Windows 95 is instead of adding the
  1190.         line "switches /n/f" to your CONFIG.SYS file, you must add the
  1191.         following line to your MSDOS.SYS file:
  1192.  
  1193.         BootKeys=0
  1194.  
  1195.         This will disable the use of F8, F4 or SHIFT to bypass the
  1196.         CONFIG.SYS and AUTOEXEC.BAT files. Adding this line is therefore
  1197.         a must, otherwise people will be able to defeat Sentry with the
  1198.         press of a key. To edit your MSDOS.SYS file, you may need to
  1199.         issue the command "attrib -h -s c:\msdos.sys" which will make it
  1200.         readable. When you are finished, you should issue the command
  1201.         "attrib +h +s c:\msdos.sys" which will restore it to it's
  1202.         previous condition.
  1203.  
  1204.         As before, ensure that the call to Sentry is at the beginning of
  1205.         your AUTOEXEC.BAT file. The Sentry.pif file and Sentry.grp file
  1206.         will still work with Windows 95, although at this time I have
  1207.         not drawn up specific instructions for installation.
  1208.  
  1209.         I have not yet conducted thorough tests in a Windows 95
  1210.         environment, however documentation for this should be
  1211.         forthcoming in a future revision.
  1212.  
  1213.  
  1214.         7.0 Securing Other Programs
  1215.         ===========================
  1216.  
  1217.         7.1 General
  1218.  
  1219.         In some cases, it might be beneficial to secure a single
  1220.         program. It might be a word-processor, Windows, or a potentially
  1221.         dangerous file like FORMAT.COM. In any case, you can secure it
  1222.         with Sentry, even if you don't use Sentry during boot-up.
  1223.  
  1224.  
  1225.         7.2 Setup
  1226.  
  1227.         To successfully protect your file, you must keep a backup.
  1228.         (Sentry cannot reverse the process of protecting a file!) This
  1229.         backup should not be kept anywhere accessible (IE: make a backup
  1230.         on floppy, and store it somewhere safe). After all, if a user
  1231.         can run an unprotected version of the file, why bother
  1232.         protecting it in the first place? It is wise to test the file
  1233.         once it has been protected to ensure it works as expected.
  1234.  
  1235.         To protect a file, simply chose "Protect a File" from the
  1236.         SuperUser menu. Sentry will ask for the file name of the file to
  1237.         protect. The file must be an executable (IE: it ends with .EXE,
  1238.         .COM or .BAT). Batch files are automatically converted into .EXE
  1239.         files. Once you have entered a correct file name, Sentry will
  1240.         then proceed to protect the file. When it is finished, you will
  1241.         be returned to the SuperUser menu. Your file is now protected!
  1242.  
  1243.         The applications for this type of protection are almost
  1244.         limitless. Use your imagination. If you come up with an
  1245.         innovative idea, I would be interested in hearing about it.
  1246.  
  1247.  
  1248.         7.3 Account Information
  1249.  
  1250.         The account structure for a given protected file is copied from
  1251.         the version of Sentry that protected the file, but is unique.
  1252.         That is, once a file is protected, a SuperUser can
  1253.         add/delete/modify any accounts for that protected file without
  1254.         affecting any other copies of Sentry. The initialization
  1255.         settings are treated in the same manner. Each protected file has
  1256.         their own unique copy.
  1257.  
  1258.         To change account information on a protected file, simply run
  1259.         the file, and when Sentry executes, log in as a SuperUser. You
  1260.         can now perform all SuperUser options as usual.
  1261.  
  1262.  
  1263.         7.4 Using Templates
  1264.  
  1265.         It is possible to set up "template" instances of Sentry for use
  1266.         when protecting files. This can be extremely useful as it saves
  1267.         the administrator a considerable amount of time, as well as
  1268.         decreasing the possibility of making a mistake.
  1269.  
  1270.         To use templates, you must set up several instances of Sentry
  1271.         (one for each template you wish to use). See section 8 for
  1272.         instructions on how to create an instance of Sentry.
  1273.  
  1274.         A sample setup could be as follows:
  1275.  
  1276.         c:\Sentry
  1277.              |
  1278.              +----+------- Private
  1279.                   |
  1280.                   +------- Public
  1281.                   |
  1282.                   +------- SemiPub
  1283.  
  1284.         With each instance having a complete copy of Sentry. Next simply
  1285.         modify the account structure of each instance to match the
  1286.         template. That is, the Private instance would contain only the
  1287.         SuperUser(s), the Public may contain all users, and the
  1288.         Semi-Public would contain the SuperUser(s) plus some users.
  1289.  
  1290.         Now you would use the Private instance as a template to protect
  1291.         exclusive executables, such as format.com. When you use the
  1292.         Private template, the protected file is automatically set to
  1293.         allow only SuperUsers to run it.
  1294.  
  1295.         Similarly, the Semi-Public template can be used for programs
  1296.         that only the SuperUser and a select number of users have access
  1297.         to.
  1298.  
  1299.         The advantage to using templates is that the administrator need
  1300.         only set up the account structure and initialization settings
  1301.         once. From that point forward it becomes the default for all
  1302.         files protected using that template.
  1303.  
  1304.  
  1305.         7.5 Running a Protected File
  1306.  
  1307.         To use a protected file, simply run it as usual. Now, instead of
  1308.         the program executing, Sentry will run. The user will be
  1309.         confronted with a login prompt, and they must enter a correct
  1310.         login and password to continue.
  1311.  
  1312.         An unsuccessful login will result in the user being locked out
  1313.         (as with Sentry in normal use). A successful login will simply
  1314.         run the protected file. Once the file is run, the user will be
  1315.         returned to whatever they were doing (IE: the DOS prompt, etc).
  1316.  
  1317.         Command line arguments are passed to protected files in the same
  1318.         manner as usual. To run the file FORMAT with the argument A:, it
  1319.         would look like this:
  1320.  
  1321.         format a:
  1322.  
  1323.         which is identical to the usual way of passing command line
  1324.         arguments.
  1325.  
  1326.  
  1327.         8.0 Creating a new Instance of Sentry
  1328.         =====================================
  1329.  
  1330.         In some of the scenarios listed above, you may be required to
  1331.         create a new "instance" of Sentry. That is to say, a completely
  1332.         new copy of Sentry, that works independently of all other
  1333.         copies. This is a fairly simple process, that you can perform as
  1334.         many times as required.
  1335.  
  1336.         The first thing you must do when creating a new instance is to
  1337.         create the directory you wish to place it under. If you plan to
  1338.         have several instances, you may want to create a Sentry main
  1339.         directory, with your instances branching off of that. For
  1340.         example:
  1341.  
  1342.         c:\Sentry
  1343.              |
  1344.              +----+------- Inst1
  1345.                   |
  1346.                   +------- Inst2
  1347.  
  1348.         This will allow you to keep all your Sentry files well
  1349.         organized, and separate from your other programs. Create a
  1350.         directory for each instance you anticipate you will need. From
  1351.         there, simply copy ALL of the Sentry files into each directory.
  1352.  
  1353.         The final step is to set up the accounts of each instance
  1354.         according to your needs. To do this, you must go into each
  1355.         directory individually and run Sentry. Now log in as a SuperUser
  1356.         and set up all the required accounts. Remember that each
  1357.         instance is independent of the others. Your account information
  1358.         will not be the same for any 2 instances (otherwise there is no
  1359.         advantage to having 2 instances).
  1360.  
  1361.         You should always test out each instance and make sure it works
  1362.         before using it.
  1363.  
  1364.  
  1365.         9.0 Registration
  1366.         ================
  1367.  
  1368.         9.1 General
  1369.  
  1370.         If you use Sentry on your machine(s), I urge you to register. I
  1371.         have put a lot of time and effort into making Sentry a viable
  1372.         security program, and I would appreciate the effort very much.
  1373.  
  1374.         On the other hand, I realize that not everyone can afford to
  1375.         register. In that case, please feel free to continue to use the
  1376.         ShareWare version. There are no limitations on how long or how
  1377.         many times it can be used. My intention with Sentry was to make
  1378.         a contribution to PC security, and to make it available to
  1379.         everyone. All I ask is that if you use Sentry, and are able,
  1380.         please register.
  1381.  
  1382.         The shareware version of Sentry has all the functionality of the
  1383.         registered version, with one exception: it does not encode
  1384.         passwords. This will allow you to test out all the functions of
  1385.         Sentry before you commit to purchasing it. The ShareWare version
  1386.         in itself is a very secure program as is, however if you are
  1387.         serious about Security, plaintext passwords are not a viable
  1388.         option.
  1389.  
  1390.         To order, simply fill out the order form provided (Order.frm)
  1391.         and e-mail or snail-mail a copy to me.
  1392.  
  1393.  
  1394.         9.2 Benefits of Registration
  1395.  
  1396.         As a registered user, you will receive:
  1397.  
  1398.               - The full Sentry program (with password encryption) and
  1399.                 related files on 3.5" disk.
  1400.  
  1401.               - A laser printed user's manual (essentially this file,
  1402.                 with a few changes in format and content).
  1403.  
  1404.               - Online internet support via e-mail.
  1405.  
  1406.               - Free upgrades as soon as they are available.
  1407.  
  1408.               - Notices about any potential security risks, and
  1409.                 instructions on how to protect yourself.
  1410.  
  1411.               - The ability to request specific features in future
  1412.                 versions of Sentry.
  1413.  
  1414.               - A clear conscience knowing that you paid for your
  1415.                 software.
  1416.  
  1417.         NOTE: Registered versions are not inter-compatible. That is,
  1418.         user X's account information is encrypted differently than user
  1419.         Y's. The version of Sentry that you receive is good only for you
  1420.         and your files. (Likewise, nobody else can use their copy of
  1421.         Sentry with your account information). See the order form for
  1422.         information on obtaining compatible versions of Sentry.
  1423.  
  1424.  
  1425.         10.0 The Initialization Settings
  1426.         ================================
  1427.  
  1428.         10.1 Location of the Log File
  1429.  
  1430.         This contains the location of the log file. The log file should
  1431.         be kept somewhere safe, tucked away from prying eyes.
  1432.  
  1433.         NOTE: You should change the name of the file from Sentry.log to
  1434.         some other, inconspicuous name. Potential intruders will search
  1435.         for the Sentry.log file. You can hide it under misleading names
  1436.         such as file_id.diz, chklist.ms, warm.com etc etc.
  1437.  
  1438.         Default: c:\Sentry.log
  1439.  
  1440.  
  1441.         10.2 Location of the Backup Log File
  1442.  
  1443.         This contains the location of the backup log file. When the max
  1444.         log file size has been reached, half of the log file is
  1445.         automatically moved to the backup log file. This prevents the
  1446.         primary log file from getting too large.
  1447.  
  1448.         Default: c:\backup.log
  1449.  
  1450.  
  1451.         10.3 Location of the Message File
  1452.  
  1453.         This contains the location of the message file. The message file
  1454.         should be kept somewhere safe, tucked away from prying eyes.
  1455.  
  1456.         NOTE: You should change the name of the file from Sentry.msg to
  1457.         some other, inconspicuous name. Potential intruders will search
  1458.         for the Sentry.msg file. You can hide it under misleading names
  1459.         such as file_id.diz, chklist.ms, warm.com etc.
  1460.  
  1461.         Default: c:\Sentry.msg
  1462.  
  1463.  
  1464.         10.4 Minimum Password Length
  1465.  
  1466.         Sets the minimum length for passwords and logins.
  1467.  
  1468.         NOTE: A value of 4 should be the absolute minimum for
  1469.         MinPasswordLen. A value of 5 or 6 would be even better. Short
  1470.         passwords are much easier to stumble across since less attempts
  1471.         have to be made before it is guessed.
  1472.  
  1473.         Default: 4
  1474.  
  1475.  
  1476.         10.5 Maximum Password Length
  1477.  
  1478.         Sets the maximum length for passwords and logins.
  1479.  
  1480.         Default: 20
  1481.  
  1482.  
  1483.         10.6 Maximum Invalid Tries
  1484.  
  1485.         Sets the maximum times a user can attempt to log in before being
  1486.         locked out.
  1487.  
  1488.         NOTE: This should not be set too high. It is very rare for a
  1489.         legitimate user to botch a login attempt 3 times in a row. A
  1490.         potential intruder will usually have to make many attempts
  1491.         before getting anywhere. Setting MaxTries to around 3 will slow
  1492.         him down greatly, as he will have to reset after 3 failed
  1493.         attempts.
  1494.  
  1495.         Default: 3
  1496.  
  1497.  
  1498.         10.7 Wait Time After an Invalid Login
  1499.  
  1500.         Sets the delay in seconds to wait after the user fails to log
  1501.         in.
  1502.  
  1503.         NOTE: Setting the WaitTime to 3 or above greatly slows any
  1504.         methodical attempt to guess or discover passwords. It offers
  1505.         little inconvenience to the end users while providing added
  1506.         security.
  1507.  
  1508.         Default: 3
  1509.  
  1510.  
  1511.         10.8 Max Log File Size
  1512.  
  1513.         This sets the maximum size the log file can reach before the
  1514.         oldest half of it is automatically moved to the backup log file.
  1515.         The size is given in number of kilobytes (1024 bytes). A value
  1516.         of 0 means never backup the log file.
  1517.  
  1518.         Default: 20
  1519.  
  1520.  
  1521.         10.9 Key to Change Password
  1522.  
  1523.         Sets the "key" to enter as a password to change passwords.
  1524.  
  1525.         Default: passwd
  1526.  
  1527.  
  1528.         10.10 Password Echo Character
  1529.  
  1530.         Sets the character to be echoed to the screen when the password
  1531.         is being entered.
  1532.  
  1533.         Enter '?' to display no character.
  1534.         Enter '!' to display the actual character (not recommended).
  1535.  
  1536.         Default: *
  1537.  
  1538.  
  1539.         10.11 Days Until Passwords Expire
  1540.  
  1541.         Sets the number of days a password is good before it expires.
  1542.         This is the Default value used whenever a password is changed.
  1543.         Individual passwords can be set to expire on the SuperUser menu.
  1544.  
  1545.         NOTE: It is a good idea to have this set to between 180 and 365.
  1546.         Anything over a year is a security risk due to age. Anything
  1547.         under half a year is a risk because people will tend to forget
  1548.         their passwords and start writing them down. This setting should
  1549.         depend on how busy your system generally is.
  1550.  
  1551.         0 = Never expire passwords.
  1552.  
  1553.         Default: 365
  1554.  
  1555.  
  1556.         10.12 Days Until Accounts Expire
  1557.  
  1558.         Sets the number of days an unused account is good before it
  1559.         expires. This is the Default value used whenever an account is
  1560.         created. Individual accounts can be set to expire on the
  1561.         SuperUser menu.
  1562.  
  1563.         NOTE: This setting should depend on the level of activity on
  1564.         your system. Active systems can afford to have a lower setting
  1565.         than generally inactive settings. You should also take into
  1566.         consideration the probability of an intruder using an old
  1567.         account.
  1568.  
  1569.         0 = Never expire unused accounts.
  1570.  
  1571.         Default: 365
  1572.  
  1573.  
  1574.         10.13 Screen Saver Activation Time
  1575.  
  1576.         This sets the amount of idle time (in seconds) that may pass
  1577.         before the screen saver is activated.
  1578.  
  1579.         Default: 300
  1580.  
  1581.  
  1582.         10.14 Screen Saver Message
  1583.  
  1584.         This is the message that is displayed randomly on the screen
  1585.         when the screen saver is active.
  1586.  
  1587.         Default: This is a Secure Terminal.
  1588.  
  1589.  
  1590.         10.15 Login Prompt
  1591.  
  1592.         This sets the value of the prompt that is displayed when the
  1593.         user is expected to enter their login name. Modifying this
  1594.         allows you to customize your environment as you see fit.
  1595.  
  1596.         Default: Login:
  1597.  
  1598.  
  1599.         10.16 Password Prompt
  1600.  
  1601.         This sets the value of the prompt that is displayed when the
  1602.         user is expected to enter their password. Modifying this allows
  1603.         you to customize your environment as you see fit.
  1604.  
  1605.         Default: Password:
  1606.  
  1607.  
  1608.         10.17 Wrong Password Message
  1609.  
  1610.         This sets the message to be displayed when a user enters the
  1611.         wrong password.
  1612.  
  1613.         NOTE: It is a good idea to keep the wrong password and wrong
  1614.         login messages the same. Otherwise, a potential intruder will
  1615.         know when he has found an account (IE: If Sentry responds with
  1616.         "Invalid Password", he knows the login was correct). Keeping the
  1617.         two the same prevents an attacker from knowing if he even has
  1618.         the correct login.
  1619.  
  1620.         Default: Invalid Login.
  1621.  
  1622.  
  1623.         10.18 Wrong Login Message
  1624.  
  1625.         This sets the message to be displayed when a user enters the
  1626.         wrong login.
  1627.  
  1628.         NOTE: It is a good idea to keep the wrong password and wrong
  1629.         login messages the same. Otherwise, a potential intruder will
  1630.         know when he has found an account (IE: If Sentry responds with
  1631.         "Invalid Password", he knows the login was correct). Keeping the
  1632.         two the same prevents an attacker from knowing if he even has
  1633.         the correct login.
  1634.  
  1635.         Default: Invalid Login.
  1636.  
  1637.  
  1638.         10.19 Bad Password Length Message
  1639.  
  1640.         This sets the message to be displayed when a user enters a
  1641.         password of invalid length.
  1642.  
  1643.         NOTE: It is wise to keep the wrong password length, wrong login
  1644.         length, wrong password and wrong login messages the same. This
  1645.         will prevent a potential attacker from knowing the max and min
  1646.         settings for passwords or logins on your system. (Knowing the
  1647.         length of a password can greatly decrease the amount of time
  1648.         required to crack it).
  1649.  
  1650.         Default: Invalid Login.
  1651.  
  1652.  
  1653.         10.20 Bad Login Length Message
  1654.  
  1655.         This sets the message to be displayed when a user enters a login
  1656.         of invalid length.
  1657.  
  1658.         NOTE: It is wise to keep the wrong password length, wrong login
  1659.         length, wrong password and wrong login messages the same. This
  1660.         will prevent a potential attacker from knowing the max and min
  1661.         settings for passwords or logins on your system. (Knowing the
  1662.         length of a password can greatly decrease the amount of time
  1663.         required to crack it).
  1664.  
  1665.         Default: Invalid Login.
  1666.  
  1667.  
  1668.         10.21 Wrong Password Log Message
  1669.  
  1670.         This sets the message to be saved to the log file when a user
  1671.         enters the wrong password.
  1672.  
  1673.         Default: User entered the wrong password.
  1674.  
  1675.  
  1676.         10.22 Wrong Login Log Message
  1677.  
  1678.         This sets the message to be saved to the log file when a user
  1679.         enters the wrong login.
  1680.  
  1681.         NOTE: This message should be descriptive, since the SuperUser
  1682.         will use it to determine what sort of activities have been
  1683.         happening.
  1684.  
  1685.         Default: User entered the wrong login.
  1686.  
  1687.  
  1688.         10.23 Bad Password Length Log Message
  1689.  
  1690.         This sets the message to be saved to the log file when a user
  1691.         enters a password of invalid length.
  1692.  
  1693.         Default: Invalid Password Length.
  1694.  
  1695.  
  1696.         10.24 Bad Login Length Log Message
  1697.  
  1698.         This sets the message to be saved to the log file when a user
  1699.         enters a login of invalid length.
  1700.  
  1701.         Default: Invalid Login Length.
  1702.  
  1703.  
  1704.         10.25 Environment Variable
  1705.  
  1706.         This sets the environment variable used to store the user's
  1707.         login name after a successful login.
  1708.  
  1709.         NOTE: The environment variable USER is used by many networks,
  1710.         such Novell. By using this setting, Sentry can be used in
  1711.         conjunction with these networks.
  1712.  
  1713.         Default: USER
  1714.  
  1715.  
  1716.         10.26 Enable Sentry with Windows
  1717.  
  1718.         The Windows flag is set if you wish to run Sentry from Windows.
  1719.         Technically, this allows Sentry to open up a DOS shell after a
  1720.         successful login. Setting this option to 1 has no effect on
  1721.         normal use, and is not a security risk.
  1722.  
  1723.         (0=Do Not Run In Windows, 1=Run In Windows)
  1724.  
  1725.         Default: 1
  1726.  
  1727.  
  1728.         10.27 Show Title
  1729.  
  1730.         This determines if the intro screen is displayed or not. You may
  1731.         choose not to display the title information if you don't want
  1732.         users to know what program you are using. On the other hand, the
  1733.         registration information should be displayed for authenticity's
  1734.         sake. I have added this option because security comes before all
  1735.         else.
  1736.  
  1737.         (0=Not Displayed, 1=Displayed)
  1738.  
  1739.         Default: 1
  1740.  
  1741.  
  1742.         10.28 Date Format
  1743.  
  1744.         This will allow you to have dates displayed in different
  1745.         formats. Some people prefer different formats than others, so
  1746.         this will allow you to define the way dates are displayed.
  1747.  
  1748.         (0=MM/DD/YYYY, 1=DD/MM/YYYY)
  1749.  
  1750.         Default: 1
  1751.  
  1752.  
  1753.         10.29 Case Sensitivity
  1754.  
  1755.         This sets the case sensitivity. If "Case Insensitive" is
  1756.         selected, "SENTRY" "sentry" and "Sentry" are all treated as the
  1757.         same at the login prompt. If case sensitivity is enabled, the
  1758.         three are all treated as different logins.
  1759.  
  1760.         (0=Case Sensitive, 1=Case Insensitive)
  1761.  
  1762.         NOTE: Using "Case Insensitive" reduces the number of allowable
  1763.         logins, and increases the probability of an attacker getting a
  1764.         correct login. Still, some people find it easier to work with
  1765.         Case Sensitivity off.
  1766.  
  1767.         Default: 0
  1768.  
  1769.  
  1770.         10.30 Windowed Mode
  1771.  
  1772.         This allows you to use Sentry in a "windowed" mode (not to be
  1773.         confused with Microsoft Windows). If the windowed mode is
  1774.         undesirable, you can choose not to use it.
  1775.  
  1776.         (0=Regular Mode, 1=Normal Windowed Mode, 2=Exploding Windowed Mode)
  1777.  
  1778.         Default: 2
  1779.  
  1780.  
  1781.         10.31 Enable Colour
  1782.  
  1783.         This determines if colour will be displayed by Sentry or not.
  1784.         Some laptop users may wish to use the black and white setting
  1785.         for better readability.
  1786.  
  1787.         (0=Black and White, 1=Colour)
  1788.  
  1789.         Default: 1
  1790.  
  1791.  
  1792.         10.32 Text Colour
  1793.  
  1794.         You can set TextColour to the value of the colour you wish
  1795.         normal text to appear in. Colour values are shown in the chart
  1796.         below.
  1797.  
  1798.         COLOURS:
  1799.         0 Black 4 Red        8 Dark Gray    12 Light Red
  1800.         1 Blue  5 Magenta    9 Light Blue   13 Light Magenta
  1801.         2 Green 6 Brown      10 Light Green 14 Yellow
  1802.         3 Cyan  7 Light Gray 11 Light Cyan  15 White
  1803.  
  1804.         Default: 15
  1805.  
  1806.  
  1807.         10.33 Text Background
  1808.  
  1809.         You can set TextBackground to the value of the colour you wish
  1810.         normal text to have as a background. Colour values are shown in
  1811.         the chart below.
  1812.  
  1813.         COLOURS:
  1814.         0 Black 4 Red
  1815.         1 Blue  5 Magenta
  1816.         2 Green 6 Brown
  1817.         3 Cyan  7 Light Gray
  1818.  
  1819.         Default: 1
  1820.  
  1821.  
  1822.         10.34 Highlighted Text Colour
  1823.  
  1824.         You can set HighColour to the value of the colour you wish
  1825.         highlighted text to appear in. Colour values are shown in the
  1826.         chart below.
  1827.  
  1828.         COLOURS:
  1829.         0 Black 4 Red        8 Dark Gray    12 Light Red
  1830.         1 Blue  5 Magenta    9 Light Blue   13 Light Magenta
  1831.         2 Green 6 Brown      10 Light Green 14 Yellow
  1832.         3 Cyan  7 Light Gray 11 Light Cyan  15 White
  1833.  
  1834.         Default: 1
  1835.  
  1836.  
  1837.         10.35 Highlighted Text Background
  1838.  
  1839.         You can set HighBackground to the value of the colour you wish
  1840.         highlighted text to have as a background. Colour values are
  1841.         shown in the chart below.
  1842.  
  1843.         COLOURS:
  1844.         0 Black 4 Red
  1845.         1 Blue  5 Magenta
  1846.         2 Green 6 Brown
  1847.         3 Cyan  7 Light Gray
  1848.  
  1849.         Default: 7
  1850.  
  1851.  
  1852.         10.36 Maximum Invalid Logins
  1853.  
  1854.         This sets the Default number of consecutive invalid logins
  1855.         possible before an account is locked out. Only a SuperUser can
  1856.         subsequently unlock an account.
  1857.  
  1858.         Default: 10
  1859.  
  1860.  
  1861.         11.0 Technical Notes
  1862.         ====================
  1863.  
  1864.         11.1 Encoding Algorithm
  1865.  
  1866.         The encoding algorithm used is the standard UNIX Crypt()
  1867.         algorithm. It is a one-way encoding algorithm that incorporates
  1868.         the Data Encryption Standard (DES) and RSA technology. It is
  1869.         used on UNIX systems to secure passwords. (As a note, the
  1870.         encryption code is not included with the ShareWare version, so
  1871.         no amount of examining the code will reveal the algorithm).
  1872.  
  1873.         The users' passwords are never decoded. They are stored on disk
  1874.         and in memory in an encoded format. The entered passwords are
  1875.         encoded using the same algorithm and matched in an encoded form.
  1876.         This prevents disk or memory scans from revealing the password
  1877.         to prying eyes.
  1878.  
  1879.         I have begun running some tests on cracking the passwords, and I
  1880.         will include my results. So far, this is what I have found:
  1881.  
  1882.         Password Length          Maximum Time to Break
  1883.         ------------------------------------------------
  1884.         4                        22 days
  1885.         5                        1368 days or 3.75 years
  1886.         6                        232.4 years
  1887.         7                        14409 years
  1888.         8                        893357 years
  1889.  
  1890.         All times listed are approximated as using a Pentium 90MHz CPU
  1891.         and an alpha-numeric password.
  1892.  
  1893.         These figures may be adjusted as my testing becomes more
  1894.         accurate. The above figures also assume you know the length of
  1895.         the password, which cannot be determined by looking at the
  1896.         encrypted version. As a result, the search time may be much
  1897.         greater.
  1898.  
  1899.  
  1900.         11.2 SuperUser Access
  1901.  
  1902.         SuperUser access is also encoded in the password. I tried many
  1903.         different ways before finally settling on this. It is the most
  1904.         secure method. Actually, SuperUser access is stored on the
  1905.         password (which is then encoded), and then stored again on the
  1906.         encoded password. That looks like:
  1907.  
  1908.         password                      <-- Password as entered.
  1909.  
  1910.         super(password)               <-- Password with SuperUser stamp.
  1911.                                           * This is the stamp that is
  1912.                                           used to determine access.
  1913.  
  1914.         crypt(super(password))        <-- Encoded password with
  1915.                                           SuperUser stamp.
  1916.  
  1917.         super(crypt(super(password))) <-- SuperUser stamped encoded
  1918.                                           password with SuperUser stamp.
  1919.                                           * This is the stamp that is
  1920.                                           used to "see" who has
  1921.                                           SuperUser access.
  1922.  
  1923.         That way when you use the "View Users" command, you can see
  1924.         which ones are SuperUsers. However, since the non-encoded
  1925.         SuperUser stamp can be edited, it is only used for viewing. The
  1926.         encoded SuperUser stamp is used for access. If anyone attempts
  1927.         to alter the SuperUser stamp, a warning will be displayed in
  1928.         the log file each time that user logs in.
  1929.  
  1930.  
  1931.         11.3 Files
  1932.  
  1933.         The following files are included with this release of Sentry:
  1934.  
  1935.         Sentry.exe      This is the executable program.
  1936.         Install.exe     The installation program.
  1937.         File_id.diz     Short description file.
  1938.         History.txt     The complete revision history of Sentry.
  1939.         License.txt     The license agreement.
  1940.         Order.frm       The order form.
  1941.         Qstart.txt      Quickstart instructions.
  1942.         Readme.com      Displays this file.
  1943.         Readme.txt      This file.
  1944.         Sentry.ins      Descriptions of Initialization Settings.
  1945.         Sentry.hlp      Sentry's Help file.
  1946.         Sentry.grp      The Sentry Group file for Windows.
  1947.         Sentry.pif      The Sentry .pif file for Windows.
  1948.         Whatsnew.txt    A short description of modifications to the
  1949.                         latest version.
  1950.  
  1951.         If you do not have all of these files, Sentry may not work for
  1952.         you. You can pick up a complete copy of Sentry (and updates as
  1953.         they become available) at:
  1954.  
  1955.               http://dragon.acadiau.ca/~910318b/Sentry.html
  1956.  
  1957.  
  1958.         11.4 File_id.diz
  1959.  
  1960.         The actual contents of the file_id.diz file are shown below. If
  1961.         any modification has been made to the original file, please
  1962.         re-create it from the following section.
  1963.  
  1964.         NOTE: this is primarily for SysOps of BBS's. Single users can
  1965.         delete the file_id.diz if they wish. (However, please make sure
  1966.         that all files are present if you distribute the program.)
  1967.  
  1968.         -------------------CUT-----------------------
  1969.         (V4.1) Sentry - Security for DOS/Windows/95.
  1970.         Sentry is an extremely flexible program that
  1971.         allows you to secure your system, individual
  1972.         files,  Windows, Win 95 or any combination.
  1973.         It supports up to 100 users with normal and
  1974.         "SuperUser" access. Detailed log files help
  1975.         keep track of activity. Expiry dates and a
  1976.         mini message system help with user admin.
  1977.         http://dragon.acadiau.ca/~910318b/Sentry.html
  1978.         Mike Bobbitt [Mike.Bobbitt@AcadiaU.Ca]
  1979.         -------------------CUT-----------------------
  1980.  
  1981.  
  1982.         11.5 Time / Date
  1983.  
  1984.         NOTE: I have found one date which always seems to cause an
  1985.         error. 01/01/1997 translates to 01/15/1995 (1st day of the 15th
  1986.         month of 1995). This is obviously incorrect. I have determined
  1987.         it is a bug in Borland's date conversion routines. It is the
  1988.         ONLY date that causes problems, to my knowledge, all others
  1989.         translate fine. I advise against using 01/01/1997 for any expiry
  1990.         dates.
  1991.  
  1992.         This problem is still under investigation.
  1993.  
  1994.  
  1995.         11.6 Environment Variables
  1996.  
  1997.         When a user successfully logs in, a DOS environment variable is
  1998.         set to that user's login name. This can be a very useful feature
  1999.         as it allows custom programs to link with Sentry in a meaningful
  2000.         way.
  2001.  
  2002.         For example, if you are running Sentry from a batch file, you
  2003.         can check to see who logged in, and take appropriate action.
  2004.  
  2005.         Shown below is a short batch file which can be used for this
  2006.         type of function:
  2007.  
  2008.         -----------CUT-----------
  2009.         @echo off
  2010.         rem *** Run Sentry.
  2011.         \sentry\sentry
  2012.         cls
  2013.         rem *** Test to see who logged in.
  2014.         if %user==ROBERT goto robert
  2015.         if %user==DANNY goto dan
  2016.         rem *** Use a line like the one above for each user.
  2017.         goto end
  2018.         :robert
  2019.         rem *** Note that individual users have their own commands.
  2020.         echo SuperUser (Robert) logged in.
  2021.         defrag c:
  2022.         goto end
  2023.         :dan
  2024.         echo Dan logged in.
  2025.         goto end
  2026.         rem *** add more users as you see fit
  2027.         :end
  2028.         -----------CUT-----------
  2029.  
  2030.         NOTE: Batch files are not secure! No critical functions should
  2031.         be placed here unless it's absolutely necessary!
  2032.  
  2033.         An alternative (and more secure) method is to write a program in
  2034.         another language (like C) and compile it. Most programming
  2035.         languages allow you to read environment variables. This means
  2036.         that you can write your own custom extensions to Sentry, which
  2037.         will execute after a person logs in.
  2038.  
  2039.         Please also note that the usernames in the environment variables
  2040.         are all capital letters. (Sentry becomes SENTRY when it is set).
  2041.  
  2042.         ** NOTE: Although the environment variables are secure
  2043.         immediately after Sentry runs, they may not be secure after
  2044.         other programs have run. By this I mean that another program
  2045.         could alter the environment variables to make it LOOK like a
  2046.         different user logged in. As a result, try to do all your
  2047.         checking immediately after Sentry runs.
  2048.  
  2049.  
  2050.         11.7 Virus Scanners
  2051.  
  2052.         If you scan your system with a virus scanner such as Microsoft
  2053.         Anti-Virus, you may find that Sentry will show up quite often.
  2054.         The reason for this is that some virus scanners record
  2055.         statistics on executable files. When the next scan is performed,
  2056.         if the executable files do not match the statistics, the scanner
  2057.         panics. This can SOMETIMES be evidence of a virus on your
  2058.         system. Sentry modifies itself (in a manner similar to
  2059.         a virus) and so may be picked up on occasion, however please be
  2060.         aware that there is no threat from Sentry.
  2061.  
  2062.         SENTRY IS NOT A VIRUS!
  2063.  
  2064.         Every time you use Sentry, the executable is modified, and will
  2065.         cause your virus scanner to panic! Do not be alarmed, since this
  2066.         is normal operation for Sentry.
  2067.  
  2068.  
  2069.         11.8 General
  2070.  
  2071.         Sentry is written in Borland C, with sections of C++. As of
  2072.         version 4.1, Sentry contains over 5400 lines of code.
  2073.         Portability between machines is not an issue, since Sentry has
  2074.         been designed and tested on standard MS-DOS machines.
  2075.  
  2076.         Sentry is verified compatible with Windows 3.x and Windows 95.
  2077.  
  2078.  
  2079.         12.0 Potential Threats To Security
  2080.         ==================================
  2081.  
  2082.         Never underestimate your users. And never be satisfied that your
  2083.         system is completely "air-tight". Users are incredibly apt at
  2084.         finding loopholes in security, and once found, these holes can
  2085.         be exploited. Because of this, I am listing below all of the
  2086.         security loopholes that I am aware of at this time.
  2087.  
  2088.  
  2089.         12.1 Account Information
  2090.  
  2091.         With the release of Sentry V3.0, account information has become
  2092.         much more secure. It is still POSSIBLE however that a user can
  2093.         find and dissect the account information. The probability of
  2094.         this is remote though, since the information is not easily
  2095.         edited or understood. Also, all of these methods require a
  2096.         working knowledge of how Sentry operates, and that is not
  2097.         commonly available. The best source for that information would
  2098.         be from this file, which is deliberately missing some key pieces
  2099.         of "technical" information.
  2100.  
  2101.         If a user did manage to decipher the account information, he
  2102.         could do any of the following:
  2103.  
  2104.         - Add/Remove an expiry date (account or password)
  2105.               This is not a serious issue for passwords, as the user
  2106.               would still have to enter their old one before being
  2107.               notified that their password has expired. An attacker can
  2108.               NOT expire a password and then log in to that account.
  2109.  
  2110.         - Edit a username
  2111.               This would effectively lock out that user, unless they
  2112.               could guess their new user name.
  2113.  
  2114.         - Delete a user
  2115.               Users can be deleted, but not created.
  2116.  
  2117.         - Destroy a password
  2118.               Since passwords are encoded, there is no way to change a
  2119.               password to something usable. An edited password will
  2120.               likely lock that user out of their account, until the
  2121.               password is reset.
  2122.  
  2123.         - Change "last login" information
  2124.               Not critical, but could be used to cover an attackers
  2125.               tracks.
  2126.  
  2127.         - Change "number of invalid logins since last login" information
  2128.               Same as above.
  2129.  
  2130.         - Add/Remove restrictions on the number of invalid login attempts
  2131.               Could allow a "brute force" technique to work on an
  2132.               account password if the restriction was lifted. Also, if
  2133.               an attacker set this restriction to 1 invalid login, that
  2134.               account would be disabled if a single failed login attempt
  2135.               was made.
  2136.  
  2137.         It is important to know however, that a renegade user can never
  2138.         grant himself SuperUser privileges, nor can he ever attempt to
  2139.         effectively modify a password. To perform any of these
  2140.         functions, he MUST be logged in as a SuperUser. In addition,
  2141.         NOBODY (not even SuperUsers) can view passwords.
  2142.         (They can never be decrypted, remember?)
  2143.  
  2144.         In essence:
  2145.         Sentry does it's part for security, but you must do yours as
  2146.         well...
  2147.                        GUARD YOUR SUPERUSER PASSWORDS!
  2148.  
  2149.  
  2150.         12.2 Hardware Loopholes
  2151.  
  2152.         Although it is unlikely that a user will do this, there is a
  2153.         potential security risk to Sentry. Fortunately, this method can
  2154.         only be implemented by highly technical users. If a user really
  2155.         wants to get into your system, he can disassemble it, and take
  2156.         the battery out of your BIOS. This will reset your BIOS to the
  2157.         standard setup, which does not include password protection. From
  2158.         there, the user can enter your BIOS, and change the boot
  2159.         sequence from C,A to A,C. This means that your computer will
  2160.         search for a boot disk before booting from your hard drive.
  2161.         Therefore, the user can get in if he has a pre-made boot disk.
  2162.  
  2163.         Like I said, it's unlikely, but possible. If you want to fix up
  2164.         this back door, you can re-wire your floppy disk drive so that
  2165.         it is never used on boot up. I do not have instructions for that
  2166.         at this time, however I am looking, and will include them in
  2167.         future.
  2168.  
  2169.         Along the same lines, a user could replace your hard drive (the
  2170.         one containing Sentry)  with another hard-drive. This way he
  2171.         could then boot up using the new hard drive, and never have to
  2172.         worry about Sentry. Also, if he kept your hard drive on the
  2173.         system (as drive D for example), he could still access your
  2174.         data. This kind of trickery is highly improbable, but not
  2175.         impossible.
  2176.  
  2177.         The above two methods take more technical skill than the average
  2178.         user possesses, and should not be considered a serious threat. I
  2179.         include them simply so you can be aware such things exist. If
  2180.         you are concerned about attacks of this nature, you should
  2181.         secure your system's case to the frame (IE: make it impossible
  2182.         to open the case with a screwdriver - install a locking
  2183.         mechanism or fuse the screws to the frame).
  2184.  
  2185.         It is critical to realize that it is EXTREMELY difficult to
  2186.         repel a determined and well-organized attack. Using Sentry does
  2187.         not guarantee your computer's safety. It does however greatly
  2188.         reduce the threat of a successful attack, and more importantly,
  2189.         it can alert you to potential threats before they become a
  2190.         serious problem. Your ability to defend is much greater once you
  2191.         know you are under attack. Sentry can keep you informed of
  2192.         suspicious actions on your PC, as well as being is a powerful
  2193.         tool in defeating most threats.
  2194.  
  2195.  
  2196.         13.0 Troubleshooting
  2197.         ====================
  2198.  
  2199.         13.1 Error messages
  2200.  
  2201.         Below are listed all possible error messages you can get while
  2202.         running Sentry. With each is a brief description of what it
  2203.         means, probable causes, and how to fix it.
  2204.  
  2205.         Please be aware that ALL of these errors cause Sentry to
  2206.         lock-up. This may be an inconvenience at times, but it is done
  2207.         for security reasons (that way an attacker can't "induce" an
  2208.         error and get into the system).
  2209.  
  2210.         13.1.1  Environment overflow - not modified.
  2211.  
  2212.         There was an error trying to set modify the DOS environment. It
  2213.         may occur if you try to run Sentry from within the Sentry DOS
  2214.         shell (IE: running Sentry from Windows, then when you're in the
  2215.         shell, running it again). If this error occurs, you are
  2216.         generally using too many environment variables for the amount of
  2217.         space you have allotted. See your DOS manual for ways of
  2218.         increasing environment space.
  2219.  
  2220.  
  2221.         13.1.2  Cannot locate environment!
  2222.  
  2223.         This indicates an error with your DOS environment. Make sure
  2224.         that you are using the regular environment, or that it is set up
  2225.         correctly.
  2226.  
  2227.  
  2228.         13.1.3  Error Reading Data Segment! [Open]
  2229.  
  2230.         This occurs when the initialization settings or account
  2231.         information is not acting as expected. Make sure that you have
  2232.         about 80k of disk space free, and that your Sentry.exe file is
  2233.         not read-only.
  2234.  
  2235.         13.1.4  Error Reading Data Segment! [Scan]
  2236.  
  2237.         This usually indicates that there are no initialization
  2238.         settings. The easiest way to remedy this is to re-install Sentry
  2239.         (see section 2 for details). That will create initialization
  2240.         settings, or over-write the old settings if they are invalid.
  2241.  
  2242.  
  2243.         13.1.5  Error in Initialization Settings!
  2244.  
  2245.         Your initialization settings are corrupt or could not be read.
  2246.         The best bet here is to re-install Sentry from scratch, and
  2247.         over-write the current settings. If you find this occurring
  2248.         frequently, it is probably a bug of some sort, and I should be
  2249.         contacted.
  2250.  
  2251.  
  2252.         13.1.6  Error in creating log file!
  2253.  
  2254.         The file that logs all transactions to your computer cannot be
  2255.         created. Make sure you have specified a valid pathname for this
  2256.         setting, and make sure you have about 80k of free space on your
  2257.         drive. If a log file already exists, it will be appended to.
  2258.         Otherwise it will be created.
  2259.  
  2260.  
  2261.         13.1.7  Error in Account Information.
  2262.  
  2263.         This means there is a problem with the account information for a
  2264.         certain user. You can either try restoring your sentry.exe file
  2265.         from backup, or you can re-install it (see section 2 for
  2266.         details). If you continue to use corrupt account information,
  2267.         you will find you are locked out quite frequently. It should be
  2268.         a top priority to fix the account info.
  2269.  
  2270.  
  2271.         13.1.8  Error opening log file!
  2272.  
  2273.         There is a problem with the log file. Make sure that the log
  2274.         file pointed to by the initialization settings is not
  2275.         write-protected.
  2276.  
  2277.  
  2278.         13.1.9  Error opening backup log file!
  2279.  
  2280.         There is a problem with the backup log file. Make sure that the
  2281.         file pointed to by the initialization settings is not
  2282.         write-protected.
  2283.  
  2284.  
  2285.         13.1.10  Error opening temp file!
  2286.  
  2287.         A temporary storage file cannot be opened. Make sure you have at
  2288.         around 80k of disk space left when you run Sentry.
  2289.  
  2290.  
  2291.         13.1.11 Internal Screen Error. [Reading]
  2292.  
  2293.         This error should never occur. Having said that, if it does,
  2294.         your best bet is to check your video mode. Sentry has only been
  2295.         tested in 80x25 text mode, so make sure that is what you are
  2296.         using. If this error crops up, please contact me with the
  2297.         details.
  2298.  
  2299.  
  2300.         13.1.12 Internal Screen Error. [Writing]
  2301.  
  2302.         See above.
  2303.  
  2304.  
  2305.         13.1.13 Out of memory!
  2306.  
  2307.         When this error appears, it means that for some reason, Sentry
  2308.         didn't have enough memory to run. This is extremely rare, since
  2309.         Sentry requires very little memory. If this error occurs, try
  2310.         freeing up some memory by unloading some un-needed programs, or
  2311.         rebooting.
  2312.  
  2313.  
  2314.         13.1.14 Registration Error - Program Aborted!
  2315.  
  2316.         Someone (probably you) has tried unsuccessfully to change the
  2317.         registration information. Very naughty, but if you want to fix
  2318.         it, simply restore Sentry.exe from your backup copy. (Again, a
  2319.         good reason to keep a backup somewhere!)
  2320.  
  2321.  
  2322.         13.1.15 This account has expired.
  2323.  
  2324.         Sorry, you're out of luck. The SuperUser(s) have set your
  2325.         account to expire, and so it has. If you ARE the SuperUser,
  2326.         silly you (you shouldn't let your own account expire!). In that
  2327.         case, you will have to restore the Sentry.exe from a backup,
  2328.         and make the necessary changes to get your system running.
  2329.  
  2330.  
  2331.         13.1.16 Cannot allocate memory for environment block
  2332.  
  2333.         This is another DOS environment error. Make sure your
  2334.         environment is set up correctly and has sufficient free memory
  2335.         allocated to it.
  2336.  
  2337.  
  2338.         13.1.17 Error Opening Message File.
  2339.  
  2340.         This error indicates that the message file cannot be opened.
  2341.         Ensure that your initialization setting for the message file is
  2342.         correct, and that the file is not read-only.
  2343.  
  2344.  
  2345.         13.1.18 Error Opening System Files!
  2346.  
  2347.         This is an error during installation. If this error occurs, make
  2348.         sure that your AUTOEXEC.BAT and CONFIG.SYS files are readable,
  2349.         if they exist.
  2350.  
  2351.  
  2352.         13.1.19 Error opening protected file!
  2353.  
  2354.         This error may occur when protecting a file from the SuperUser
  2355.         menu. Make sure the file you indicate to protect is readable.
  2356.  
  2357.  
  2358.         13.1.20 Error opening Sentry.ins!
  2359.  
  2360.         This error occurs when Sentry cannot find the file containing
  2361.         the descriptions for the initialization settings. Make sure that
  2362.         the file Sentry.ins is in the same directory as the Sentry.exe
  2363.         file.
  2364.  
  2365.  
  2366.         13.2 Other problems
  2367.  
  2368.         When I run Sentry, is displays a warning saying I have
  2369.         newer/older initialization settings.
  2370.  
  2371.         A: You should probably get the latest version of Sentry (see
  2372.         section 11.3 for info on obtaining the latest version). Replace
  2373.         all your current files with the files you retrieve. This warning
  2374.         may not be a problem in itself, however it is not a good idea to
  2375.         use initialization settings from a different version.
  2376.  
  2377.  
  2378.         I get a warning about users being tampered with in the log file.
  2379.  
  2380.         A: Someone has been tampering with your users (obviously). They
  2381.         thought they could change the SuperUser access on your system,
  2382.         but really couldn't. The only side effect of this is that some
  2383.         users may appear to have SuperUser access when they don't (and
  2384.         vice-versa) when you view them from the SuperUser menu. The
  2385.         users' actual access has not changed. To remedy this situation,
  2386.         you can get the user to enter another password (this can easily
  2387.         be done by expiring their current password). As soon as the new
  2388.         password is entered, the problem will disappear.
  2389.  
  2390.  
  2391.         I can't log in at all.
  2392.  
  2393.         A: Are you a user on the system? Are your initialization
  2394.         settings set up correctly? Have you run the install program?
  2395.  
  2396.  
  2397.         I can't log in as a SuperUser.
  2398.  
  2399.         A: Did you give yourself SuperUser access? Are you remembering
  2400.         to hold down CTRL when you hit enter?
  2401.  
  2402.  
  2403.         My account information is corrupt or deleted.
  2404.  
  2405.         A: Pray you kept a backup somewhere. At the very least, you
  2406.         should have the install program sent with Sentry. In that case,
  2407.         re-install, and log in as Sentry. Since Sentry is initially a
  2408.         SuperUser, you can re-create your users (don't forget to delete
  2409.         the Sentry user when you are finished!).
  2410.  
  2411.  
  2412.         I can't create a c:\Sentry directory on my drive.
  2413.  
  2414.         A: If you are using MS-DOS's UNDELETE program, it may create a
  2415.         directory called "Sentry" off of your root directory. This
  2416.         directory is hidden, and can only be seen with the "dir /a"
  2417.         command. (This only occurs if you are using the "delete sentry"
  2418.         mode). Possible fixes are to stop using "delete sentry" mode, or
  2419.         to create your Sentry directory as something else (eg:
  2420.         c:\Sentry2, c:\Secur\Sentry, etc etc).
  2421.  
  2422.  
  2423.         14.0 Standard Disclaimer
  2424.         ========================
  2425.  
  2426.         Inexperienced users should take care with this program, as you
  2427.         may lock yourself out of your computer!
  2428.  
  2429.         If you feel you want to use it, but don't feel completely
  2430.         confident, leave a "back door" for you to use. (IE: don't
  2431.         implement all of the security measures listed in "Securing Your
  2432.         Computer"), so that if you DO get locked out, you can still get
  2433.         in somehow. Once you are satisfied that all is well, lock up the
  2434.         back door too.
  2435.  
  2436.         Please read the document "LICENSE.TXT" included with this
  2437.         software for the entire licensing agreement.
  2438.  
  2439.  
  2440.         15.0 Contact Information
  2441.         ========================
  2442.  
  2443.         I would greatly appreciate any comments you might have about
  2444.         this program (either positive or negative). If you encounter any
  2445.         problems, or have a suggestion for making Sentry better, please
  2446.         let me know, and I'll try to put it in a future release. I look
  2447.         forward to hearing from you.
  2448.  
  2449.         You can contact me via e-mail at Mike.Bobbitt@AcadiaU.Ca and I
  2450.         will reply as quickly as I can. If you do not have internet
  2451.         access, you can contact me via surface mail at:
  2452.  
  2453.         NightShade Computing
  2454.         P.O. Box 1336
  2455.         Wolfville, Nova Scotia
  2456.         B0P 1X0
  2457.         CANADA
  2458.  
  2459.  
  2460.         16.0 Credits
  2461.         ============
  2462.  
  2463.         My thanks go out to these people:
  2464.  
  2465.         Mark Saarinen for the encryption algorithm.
  2466.  
  2467.         Richard Brittain for use of his DOS environment variable code.
  2468.  
  2469.         D.J. Houghton and Rob Coombs for testing and advising during the
  2470.         design phase.
  2471.  
  2472.         Dexter J. Caldwell for suggestions on various options, as well
  2473.         as the "template" methodology  for protected files.
  2474.  
  2475.         L.D. Best for suggestions, comments and bug reports, as well as
  2476.         detailed explanations of test situations. L.D. has provided
  2477.         many good ideas and useful comments with respect to Sentry, and
  2478.         has assisted greatly in "fine tuning" many features such as file
  2479.         protection.
  2480.  
  2481.         Bret Jacobsen for finding some serious errors in the first
  2482.         release, as well as continually making suggestions for
  2483.         improvement. Bret has given invaluable assistance in the
  2484.         development of Sentry.
  2485.  
  2486.  
  2487.         ...And my wife for listening to me talk incessantly about it.
  2488.